﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.IO;

public partial class megahealth_Inventario : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["user"] == null)
        {
            Response.Redirect("../login.aspx");
        }
        else
        {
            string lista = "";
            DataSet inventario = DB.getProductosInventario();

            if (inventario != null && inventario.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < inventario.Tables[0].Rows.Count; i++)
                {
                    if ((i % 2) == 0)
                    {
                        lista += "<tr>";
                    }
                    else
                    {
                        lista += "<tr class='odd'>";
                    }
                    lista += "<td class='remove' style='font-size:16px; color:#4d4d4d; font-weight:bold'>" + inventario.Tables[0].Rows[i]["id"].ToString() + "</td>";
                    lista += "<td class='image'><a href='Producto.aspx?get=" + inventario.Tables[0].Rows[i]["id"].ToString() + "'><img src='image/productos_mini/" + inventario.Tables[0].Rows[i]["foto"].ToString() + "' class='image_Inv' alt='MegaHealth' /></a></td>";
                    lista += "<td class='name'><a href='Producto.aspx?get=" + inventario.Tables[0].Rows[i]["id"].ToString() + "'>" + inventario.Tables[0].Rows[i]["nombre"].ToString() + "</a><div> </div></td>";
                    lista += "<td class='model'>" + inventario.Tables[0].Rows[i]["categoria"].ToString() + "</td>";
                    lista += "<td class='quantity'><input type='text' size='3' value='" + inventario.Tables[0].Rows[i]["existencia"].ToString() + "' name='quantify[40]'/></td>";
                    lista += "<td class='price'>Q. " + inventario.Tables[0].Rows[i]["preciodistq"].ToString() + "</td>";
                    lista += "<td class='price'>Q. " + inventario.Tables[0].Rows[i]["preciofinq"].ToString() + "</td>";
                    lista += "</tr>";
                }
                lb_inv.Text = lista;
            }
        }
    }
    protected void Archivo_Click(object sender, EventArgs e)
    {
        if (File.HasFile)
        {
            if (Extension(File.FileName))
            {
                try
                {
                    File.PostedFile.SaveAs(Server.MapPath("~//Archivos//" + File.FileName));
                    string filepath = "~//Archivos//" + File.FileName;
                    cargarDatos(Server.MapPath(filepath));
                }
                catch
                {
                    Response.Write("<script>alert('Error al cargar el archivo!');</script>");
                }
            }
            else
            {
                Response.Write("<script>alert('Error al cargar el archivo, o no es del tipo *.CSV!');</script>");
            }
        }
        else
        {
            Response.Write("<script>alert('Error al cargar el archivo!');</script>");
        }
    }

    private void cargarDatos(string str)
    {
        DataSet tbCantidad = new DataSet();
        tbCantidad.Tables.Add("Tabla");
        tbCantidad.Tables["Tabla"].Columns.Add("transaccion");
        tbCantidad.Tables["Tabla"].Columns.Add("codigo");
        tbCantidad.Tables["Tabla"].Columns.Add("cantidad");

        StreamReader leer = new StreamReader(str);
        string fila = string.Empty;
        do
        {
            fila = leer.ReadLine();
            if (fila == null)
                break;
            tbCantidad.Tables["Tabla"].Rows.Add(agregarFila(fila));
        } while (true);

        /*for (int i = 0; i < tbCantidad.Tables[0].Rows.Count; i++)
        {
            lb_prueba.Text += tbCantidad.Tables[0].Rows[i][0].ToString() + ", " + tbCantidad.Tables[0].Rows[i][1].ToString() + ", " + tbCantidad.Tables[0].Rows[i][2].ToString() + "<br />";
        }*/

        DB.cargarArchivo(tbCantidad);
        Response.Redirect("Inventario.aspx");
    }

    bool Extension(string filename)
    {
        string ext = Path.GetExtension(filename);
        switch (ext.ToLower())
        {
            case ".csv": return true;
            default: return false;
        }
    }

    private object[] agregarFila(string fila)
    {
        string[] datos = fila.Split(',');
        object[] obj = new object[3];
        for (int i = 0; i < datos.Length; i++)
        {
            obj[i] = new object();
            obj[i] = datos[i];
        }
        return obj;
    }
}